package com.zh.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Description: 实体类的新增和插入时的时间初始化操作
 * @ClassName MyDataObjectHandler
 * @date: 2020.12.06 16:01
 * @Author: zhanghang
 */
@Slf4j
@Component // 注入到spring容器中
public class MyDataObjectHandler implements MetaObjectHandler {
    // 插入时的填充策略
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("====start insert fill====");
        // default MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject)
        // 参数说明：
        // fieldName: 字段名
        // fieldVal:  填充的值
        // metaObject： 就是方法的入参
        this.setFieldValByName("createTime", new Date(),metaObject);
        this.setFieldValByName("updateTime", new Date(),metaObject);
    }

    // 插入和修改时的填充策略
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("====start update fill====");
        this.setFieldValByName("updateTime", new Date(),metaObject);
    }
}
